Cloud computing is the delivery of computing resources as a service (rather than a product), thereby allowing users to access services on-demand and without having to purchase a terminal software license or high-performance hardware (e.g., processors, memory, etc.) used to run that software. Users may access cloud computing resources by submitting cloud computing service requests (e.g., to run a word processing application) to a cloud network, which may respond by providing the requisite resources (e.g., word processing application data, processing, memory, etc.) needed to fulfill the request via one or more data centers (DCs).
From an efficiency standpoint, it generally may be desirable to fulfill each cloud computing service request using a single DC. However, some cloud computing service requests may require resources that no single DC in the cloud network is capable of providing individually, and consequently satisfaction of such cloud service requests may require that multiple DCs work in collaboration. For instance, a first DC may provide a processing resource, a second DC may provide a memory resource, and so-on-and-so forth. The combination of DCs for fulfilling a cloud service request is generally selected based on a manual configuration, which may include manually selecting DCs based solely on their proximity to the requesting user. However, this solution may be slow, labor intensive, and (at least in some implementations) unreliable at identifying an optimal group of DCs to fulfill the request. Consequently, an improved technique for selecting candidate DCCs to fulfill cloud computing service requests is desired.